package mensagens;

import iniciarJogo.ConstantesJogo;

import java.io.IOException;
import java.net.UnknownHostException;

import model.Jogador;
import model.Peao;

import controller.ControladorServidor;
import excecoes.ConexaoNaoIniciadaException;

public class MensagemEntrarJogo extends Mensagem{

	private static final long serialVersionUID = -9164858709050655351L;
	private String apelido;
	
	public MensagemEntrarJogo(String apelido) throws UnknownHostException {
		super();
		this.apelido = apelido;
		
	}

	public void tratarMensagemComoServidor() throws IOException {
		ControladorServidor controlador = ControladorServidor.getInstace();
		
		Jogador jog = new Jogador(apelido, ConstantesJogo.DINHEIRO_INICIAL, this.getIpRemetente(), null);
		Peao p = new Peao(Peao.proxCor(),controlador.getPartida().getLugares().getInicio(),jog);
		jog.setPeao(p);
		
		if (!controlador.existeJogadorNaPartida(jog)){
			controlador.adicionarJogadorNaPartida(jog);			
			try {
				controlador.enviarMensagemConfimacaoEntradaPartida(jog, jog.getIp());
			} catch (ConexaoNaoIniciadaException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else{
			try {
				controlador.enviarMensagemNomeOuIpConflitante(this.getIpRemetente());
			} catch (ConexaoNaoIniciadaException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}	
	}

	@Override
	public void tratarMensagemComoCliente() {
	}

}
